package com.code.soulspringboot.exception;

import com.code.soulspringboot.code.BizResponseCode;

/**
 * 封装业务异常断言工具类，使用起来更方便
 *
 * @author lyf
 * @date 2022-11-20 22:37
 */
public class BizExceptionAssert {

    /**
     * 判断表达式，若不成立，则抛出异常，带上异常信息
     * @param expression 适用普通表达式，当然也可以适用函数式表达式，函数表达式都类似回调接口，需要入参的，
     *                   如果要用函数表达式，那么入参也要一同作为入参传递进来，不然执行函数的时候没入参数据
     * @param errorCode
     * @param args
     */
    public static void isTrue(boolean expression, BizResponseCode errorCode, Object... args) {
        if (!expression) {
            throw new PointException(errorCode, args);
        }
    }

    /**
     * 判断是否大于，若成立，则抛出异常，带上异常信息
     * @param num1
     * @param num2
     * @param errorCode
     */
    public static void isGreaterThan(Integer num1, Integer num2, BizResponseCode errorCode) {
        if (num1 > num2) {
            throw new PointException(errorCode, num1);
        }
    }
}
